#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
文档转换引擎

一个完整的文档转换工具引擎，支持多种文档格式转换为Markdown，
包含工作目录管理、OBS上传、转换器管理等功能。

主要特性：
- 支持PDF、DOCX、DOC、PPT、图片等多种格式
- 统一的工作目录管理，避免权限问题
- 多种转换工具支持（marker、mineru、docling、pptx2md、OCR等）
- 单例模式的转换器管理，避免重复加载模型
- 可选的OBS云存储上传功能
- 完整的错误处理和日志记录

使用示例：
```python
from converter_engine import DocumentConverter

# 初始化转换器（可选择工作目录）
converter = DocumentConverter(work_temp_dir="/your/work/dir")

# 转换单个文件
result = await converter.convert_file("document.pdf", "marker")

# 批量转换文件
results = await converter.convert_files([
    "doc1.pdf", "doc2.docx", "presentation.pptx"
])

# 查看转换器状态
converter.print_converter_status()
```

环境变量配置：
- WORK_TEMP_DIR: 工作临时目录
- OBS_ACCESS_KEY: OBS访问密钥
- OBS_SECRET_KEY: OBS秘密密钥
- OBS_ENDPOINT: OBS终端点
- OBS_BUCKET: OBS存储桶
- OBS_REGION: OBS区域
"""

from .core import DocumentConverter, ConversionResult, ObsFileInfo
from .converters import (
    BaseConverter, FileInfo, PDFConverter, DOCXConverter, 
    PPTConverter, ImageConverter, ConverterManager, 
    converter_manager, WorkDirConfig, work_dir_config
)

# 新增：干净转换引擎
from .clean_converter import (
    CleanConverter, ConversionConfig, FileManagementConfig, 
    ObsUploadConfig, UploadedFile
)

# 新增：上传器模块
from .uploader import (
    BaseUploader, ObsUploader, LocalUploader, UploaderManager,
    UploadResult, uploader_manager, create_obs_uploader, 
    create_local_uploader, register_default_uploaders
)

# 新增：配置管理
from .config import (
    ConfigLoader, load_config_from_env, load_config_from_file,
    load_config_auto, create_config_template, create_json_config_template
)

__all__ = [
    # 主要类
    'DocumentConverter',
    'ConversionResult', 
    'ObsFileInfo',
    
    # 干净转换引擎
    'CleanConverter',
    'ConversionConfig',
    'FileManagementConfig',
    'ObsUploadConfig',
    'UploadedFile',
    
    # 上传器
    'BaseUploader',
    'ObsUploader',
    'LocalUploader',
    'UploaderManager',
    'UploadResult',
    'uploader_manager',
    'create_obs_uploader',
    'create_local_uploader', 
    'register_default_uploaders',
    
    # 配置管理
    'ConfigLoader',
    'load_config_from_env',
    'load_config_from_file',
    'load_config_auto',
    'create_config_template',
    'create_json_config_template',
    
    # 转换器类
    'BaseConverter',
    'FileInfo',
    'PDFConverter',
    'DOCXConverter',
    'PPTConverter', 
    'ImageConverter',
    
    # 管理器类
    'ConverterManager',
    'converter_manager',
    'WorkDirConfig',
    'work_dir_config'
]

__version__ = '1.0.0'
__author__ = 'Solming'
__email__ = ''
__license__ = 'MIT'
__description__ = '文档转换引擎 - 支持多种文档格式转换为Markdown'
__url__ = 'https://github.com/Solming/extractToMarkdown' 